package com.itextpdf.text.pdf;
import com.itextpdf.testutils.CompareTool;
import com.itextpdf.text.*;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class VerticalPositionTest {
private static String CMP_FOLDER ="./src/test/resources/com/itextpdf/text/pdf/VerticalPositionTest/";
private static String OUTPUT_FOLDER = "./target/com/itextpdf/test/pdf/VerticalPositionTest/";
@BeforeClass
public static void init() {
new File(OUTPUT_FOLDER).mkdirs();
}
@Test
public void verticalPositionTest() throws IOException, DocumentException, InterruptedException {
String file = "vertical_position.pdf";
Document document = new Document();
final PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(OUTPUT_FOLDER + file));
document.open();
writer.setPageEvent(new PdfPageEventHelper() {
@Override
public void onEndPage(PdfWriter writer, Document document) {
Rectangle pageSize = writer.getPageSize();
float verticalPosition = writer.getVerticalPosition(false);
PdfContentByte canvas = writer.getDirectContent();
Rectangle rect = new Rectangle(0, verticalPosition, pageSize.getRight(), pageSize.getTop());
rect.setBorder(Rectangle.BOX);
rect.setBorderWidth(1);
rect.setBorderColor(BaseColor.BLUE);
canvas.rectangle(rect);
}
});
PdfPTable table = new PdfPTable(2);
for (int i = 0; i < 100; i++) {
table.addCell("Hello " + i);
table.addCell("World " + i);
}
document.add(table);
document.newPage();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append("some more text ");
}
document.add(new Paragraph(sb.toString()));
document.close();
// compare
CompareTool compareTool = new CompareTool();
String errorMessage = compareTool.compareByContent(OUTPUT_FOLDER + file, CMP_FOLDER + file, OUTPUT_FOLDER, "diff");
if (errorMessage != null) {
Assert.fail(errorMessage);
}
}
}